********************************************************************************************************************************
***Replication Data for: Landwehr, Claudia; Ojeda, Christopher; Stallbaum, Lea: Institutional Design Preferences Among German***
********and US Citizens: Results from a Factorial Survey Experiment. Political Studies, DOI: 10.1177/00323217241309965.*********
********************************************************************************************************************************

clear all
macro drop _all
set more off

ssc install dcreate, replace
ssc install fre, replace
net install listtab, from(http://fmwww.bc.edu/RePEc/bocode/l) 
net install estout, replace force from(http://fmwww.bc.edu/RePEc/bocode/e)
net install coefplot, replace force from(http://fmwww.bc.edu/RePEc/bocode/c)

cd "XXX" // Insert file path for your folder with the data

***************************************************Data****************************************************
*****US Sample*****
*Dataset: Understanding America Study, Surveys 443 and 500
*Data Access: https://uasdata.usc.edu/index.php
*Further files needed: "vignettes_US.xlsx" from the replication material

*****Generating Vignettes*****

*Importing Vignettes

import excel universe_US.xlsx,  firstrow

save universe_US, replace

*Labeling

use universe_US, clear

lab var vignr "vignette number"
lab var decisionmaker "Decision-maker"
lab var procedure "Decision Mode"
lab var representation "Representation Style"
lab var judiciary "Revision and Appeal"

lab define decision 0 "Representatives" 1 "Citizens"
lab val decisionmaker decision

lab define procedure 0 "Majority decision" 1"Deliberation"
lab val procedure procedure

lab define representation 0 "Trustee" 1"Delegate"
lab val representation representation
 
lab define judiciary 0 "No" 1 "Yes"
lab val judiciary judiciary

save setup_US, replace

*****Creating dataset for analysis*****

*Load dataset and prepare to merge with vignette data

use "uas443.dta", clear

merge 1:1 uasid using "uas500.dta" 
drop if _merge==2

destring uasid, generate(id)

drop uasid
drop uashhid - end_sec
drop anyhhmember - lastmyhh_date
drop cs_001
drop imputation_flag
drop cps
drop vignette_order_5_ - vignette_order_16
drop section_order_1_ - i_001
drop flowns_1_ - _merge

rename vi001a vigA_1
rename vi001b vigB_1
rename vi002a vigA_2
rename vi002b vigB_2
rename vi003a vigA_3
rename vi003b vigB_3
rename vi004a vigA_4
rename vi004b vigB_4
rename vi005a vigA_5
rename vi005b vigB_5
rename vi006a vigA_6
rename vi006b vigB_6
rename vi007a vigA_7
rename vi007b vigB_7
rename vi008a vigA_8
rename vi008b vigB_8
rename vi009a vigA_9
rename vi009b vigB_9
rename vi010a vigA_10
rename vi010b vigB_10
rename vi011a vigA_11
rename vi011b vigB_11
rename vi012a vigA_12
rename vi012b vigB_12
rename vi013a vigA_13
rename vi013b vigB_13
rename vi014a vigA_14
rename vi014b vigB_14
rename vi015a vigA_15
rename vi015b vigB_15
rename vi016a vigA_16
rename vi016b vigB_16

save "uas443_500_merged.dta", replace

*Reshape data

use "uas443_500_merged.dta", clear 

reshape long vigA_ vigB_, i(id) j(vignr)
sort id vignr

*Merge with vignette setup and reshape data

merge m:1 vignr using "setup_US.dta"

assert _merge  ~= 2
drop _merge

order id , first
sort id vignr

*Rename dependent variables

rename vigA_ democratic
rename vigB_ effective

lab var democratic "How democratic is this political system?"
lab var effective "Can this system successfully deal with major problems?"

*****Recoding and generating main variables*****

*Data Check
fre democratic effective
tab  democratic vignr, col mis
fre decisionmaker procedure representation judiciary if democratic == 8

recode democratic effective (8 = .) 

sum democratic, detail
sum effective, detail

corr decisionmaker procedure representation judiciary
pwcorr decisionmaker procedure representation judiciary, sig

*Party Affiliation
generate party = .
replace party = 1 if (party_affil == 1 | lean_affil == 1)
replace party = 2 if (party_affil == 2 | lean_affil == 2)
replace party = 3 if (party_affil == 4 | party_affil == 5 | party_affil == 6 | lean_affil == 3)
lab var party "Party Affiliation"
lab def party 1 "Democrat" 2 "Republican" 3 "Independent/Other"
lab val party party

*Conceptions of Democracy: Liberal-populist scale
rename cd001 lt1 
rename cd002 dp1 
rename cd003 pa1 
rename cd004 rs1 
rename cd005 lt2 
rename cd006 dp2 
rename cd007 pa2 
rename cd008 rs2 
rename cd009 lt3 
rename cd010 dp3 
rename cd011 pa3 
rename cd012 rs3 
rename cd013 lt4 
rename cd014 dp4 
rename cd015 pa4 
rename cd016 rs4

recode lt1 - rs4 (1=7) (2=6) (3=5) (5=3) (6=2) (7=1) (8 = .)
lab def con 1 "Strongly disagree" 2 "2" 3 "3" 4 "4" 5 "5" 6 "6" 7 "Strongly agree"

sum lt1 lt2 lt3 lt4 pa1 pa2 pa3 pa4
alpha lt1 lt2 lt3 lt4 pa1 pa2 pa3 pa4

foreach var of varlist pa1 pa2 pa3 pa4{
gen `var'_r = `var'
recode `var'_r 1=7 2=6 3=5 4=4 5=3 6=2 7=1
}
egen lib_pop = rowmean(lt1 lt2 lt3 lt4 pa1_r pa2_r pa3_r pa4_r) 
sum lib_pop

*****Recoding and generating control variables*****
*Gender
recode gender (1 = 0) (0 = 1)
lab def gend 0 "Male" 1 "Female"
lab var gender "Gender (Female)"
lab val gender gend

*Age
replace age = age/100
lab var age "Age/100"

*Education
gen degree =.
replace degree = 1 if (education <= 8)
replace degree = 2 if (education == 9)
replace degree = 3 if (education == 10 | education == 11 | education == 12)
replace degree = 4 if (education == 13 | education == 14 | education == 15 | education == 16)

lab var degree "Degree (categorized)"
lab def degree 1 "No degree" 2 "High school diploma" 3 "Some college" 4 "Bachelor or more"
lab val degree degree

*Region
gen region=.
replace region = 1 if (statereside==9 | statereside==23 | statereside==25 | statereside==33 | statereside==44 | statereside==50 | statereside==34 | statereside==36 | statereside==42)
replace region = 2 if (statereside==17 | statereside==18 | statereside==26 | statereside==39 | statereside==55 | statereside==19 | statereside==20 | statereside==27 | statereside==29 | statereside==31 | statereside==38 | statereside==46)
replace region = 3 if (statereside==10 | statereside==11 | statereside==12 | statereside==13 | statereside==24 | statereside==37 | statereside==45 | statereside==51 | statereside==54 | statereside==1 | statereside==21 | statereside==28 | statereside==47 | statereside==5 | statereside==22 | statereside==40 | statereside==48)
replace region = 4 if (statereside==4 | statereside==8 | statereside==16 | statereside==30 | statereside==32 | statereside==35 | statereside==49 | statereside==56| statereside==2 | statereside==6 | statereside==15 | statereside==41 | statereside==53)

lab var region "Census Regions"
lab def region 1 "Northeast" 2 "Midwest" 3 "South" 4 "West"
lab val region region

gen country = .
replace country = 1
lab var country "Sample"
lab def country 0 "Germany" 1 "US"
lab val country country

quietly compress
save "uas_vig.dta", replace 

*****German Sample*****
*Dataset: GESIS Panel - Standard Edition, Version 43.0.0 (or newer)
*Data Access: https://search.gesis.org/research_data/ZA5665
*Further files needed: "universe_DE.xlsx" from the replication material
clear all
set maxvar 20000

*****Generating Vignettes*****

*Importing Vignettes

import excel universe_DE.xlsx,  firstrow

save universe_DE, replace

*Labeling

use universe_DE, clear

lab var vignr "vignette number"
lab var decisionmaker "Decision-maker"
lab var procedure "Decision Mode"
lab var representation "Representation Style"
lab var judiciary "Revision and Appeal"

lab define decision 0 "Representatives" 1 "Voters"
lab val decisionmaker decision

lab define procedure 0 "Majority Decision" 1"Deliberation"
lab val procedure procedure

lab define representation 0 "Trustee" 1"Delegate"
lab val representation representation
 
lab define judiciary 0 "No" 1"Yes"
lab val judiciary judiciary

save setup_DE, replace

*****Creating dataset for analysis*****

*Load dataset and prepare to merge with vignette data
clear all
use "Panel_v48.dta", clear // Insert file name for your GESIS Panel data

rename z000001a id

drop z000002a - z000006a
drop z000012a - a11p017a
drop a12a001a - a12p933a
drop aaza001a - aazr043a
drop abza001a - abzr037a
drop acza001a - aczs061a
drop baza001a - bazs092a
drop bbza001a - bbzs053a
drop bcza001a - bczs058a
drop bdza001a - bdzs054a
drop beza001a - bezs070a
drop bfzi001a - bfzi030b
drop bfza001a - bfzs056a
drop cazq001a - cazs056a
drop cbzq001a - cbzs063a
drop ccza001a - cczs072a
drop cdza001a - cdzs048a
drop ceza001a - cfzi030b
drop cfza001a - cfzs072a
drop daza001a - dazs063a
drop dbza001a - dbzs065a
drop dcza001a - dczs070a
drop ddza001a - ddzs058a
drop deza001a - dfbn036a
drop dfza001a - dfzs064a
drop eaza001a - eazs089a
drop ebza001a - ebzs082a
drop ecza001a - eczs059a
drop edza001a - edzs035a
drop eeza001a - efzi030b
drop efza001a - efzs070a
drop faza001a - fazs047a
drop fbza001a - fbzs094a
drop fcza001a - fczs058a
drop fdza001a - fdzs061a
drop feza001a - ffzi030b
drop ffza001a - ffzs072a
drop gaza001a - gazs093a
drop gbza001a - gbzs083a
drop gcza001a - gczs062a
drop gdza001a - gdzs053a
drop geza001a - gfzi030b
drop gfza001a - gfzs064a
drop hzza001a - hzzr019a
drop hbza001a - hbzs079a
drop hcza001a - hczs076a
drop hdza001a - hdzs053a
drop heza001a - hezs112a
drop d12a001a - d12p955a
drop f12a001a - f12p946a
drop jbza003a - jbzs095a

drop if (jbza002a == 0 | jbza002a == -22)

rename jbdo100a vigA_1
rename jbdo101a vigB_1
rename jbdo102a vigA_2
rename jbdo103a vigB_2
rename jbdo104a vigA_3
rename jbdo105a vigB_3
rename jbdo106a vigA_4
rename jbdo107a vigB_4
rename jbdo108a vigA_5
rename jbdo109a vigB_5
rename jbdo110a vigA_6
rename jbdo111a vigB_6
rename jbdo112a vigA_7
rename jbdo113a vigB_7
rename jbdo114a vigA_8
rename jbdo115a vigB_8
rename jbdo116a vigA_9
rename jbdo117a vigB_9
rename jbdo118a vigA_10
rename jbdo119a vigB_10
rename jbdo120a vigA_11
rename jbdo121a vigB_11
rename jbdo122a vigA_12
rename jbdo123a vigB_12
rename jbdo124a vigA_13
rename jbdo125a vigB_13
rename jbdo126a vigA_14
rename jbdo127a vigB_14
rename jbdo128a vigA_15
rename jbdo129a vigB_15
rename jbdo130a vigA_16
rename jbdo131a vigB_16

*Reshape data

reshape long vigA_ vigB_, i(id) j(vignr)
sort id vignr

*Merge with vignette setup and reshape data

merge m:1 vignr using "setup_DE.dta"

assert _merge  ~= 2
drop _merge

order id , first
sort id vignr

*Rename dependent variables

rename vigA_ democratic
rename vigB_ effective

lab var democratic "How democratic is this political system?"
lab var effective "Can this system successfully deal with major problems?"

*****Recoding and generating main variables*****

*Data Check

fre democratic effective
tab  democratic vignr, col mis
fre decisionmaker procedure representation judiciary if democratic == 98

recode democratic effective (-111 -99 -77 -66 -44 98 = .)

sum democratic, detail
sum effective, detail

corr decisionmaker procedure representation judiciary
pwcorr decisionmaker procedure representation judiciary, sig

*Vote Choice
gen wahl = .
replace wahl = 1 if (icdj082a == 1)
replace wahl = 2 if (icdj082a == 2)
replace wahl = 3 if (icdj082a == 6)
replace wahl = 4 if (icdj082a == 4)
replace wahl = 5 if (icdj082a == 5)
replace wahl = 6 if (icdj082a == 3)
replace wahl = 7 if (icdj080a == 97)
lab var wahl "Vote Choice Federal Election 2021"
lab def wahl 1 "CDU/CSU" 2 "SPD" 3 "Grüne" 4 "FDP" 5 "Linke" 6 "AfD" 7 "Non-Voters"
lab val wahl wahl

*Conceptions of Democracy: Liberal-populist scale
rename jbdo079a lt1 
rename jbdo080a dp1 
rename jbdo081a pa1 
rename jbdo082a rs1 
rename jbdo083a lt2 
rename jbdo084a dp2 
rename jbdo085a pa2 
rename jbdo086a rs2 
rename jbdo087a lt3 
rename jbdo088a dp3 
rename jbdo089a pa3 
rename jbdo090a rs3 
rename jbdo091a lt4 
rename jbdo092a dp4 
rename jbdo093a pa4 
rename jbdo094a rs4

recode lt1 - rs4 (1=7) (2=6) (3=5) (5=3) (6=2) (7=1) (-111 -99 -77 -33 98 = .)
lab def con 1 "Stimme überhaupt nicht zu" 2 "2" 3 "3" 4 "4" 5 "5" 6 "6" 7 "Stimme voll und ganz zu"
lab val lt1 - rs4 con

sum lt1 lt2 lt3 lt4 pa1 pa2 pa3 pa4
alpha lt1 lt2 lt3 lt4 pa1 pa2 pa3 pa4

foreach var of varlist pa1 pa2 pa3 pa4{
gen `var'_r = `var'
recode `var'_r 1=7 2=6 3=5 4=4 5=3 6=2 7=1
}
egen lib_pop = rowmean(lt1 lt2 lt3 lt4 pa1_r pa2_r pa3_r pa4_r) 
sum lib_pop

*****Recoding and generating control variables*****
*Gender
generate gender = .
replace gender = 0 if (a11d054a == 1 | d11d054a == 1 | f11d054a == 1)
replace gender = 1 if (a11d054a == 2 | d11d054a == 2 | f11d054a == 2)
lab var gender "Gender (Female)"
lab def gender 0 "Male" 1 "Female"
lab val gender gender

*Age
recode a11d056b bfzh070c cfzh072c (-111 = .) (-99 = .) (-77 = .) (-33 = .) (-22 = .) (-11 = .)
generate yrbrn2015 = a11d056b
replace yrbrn2015 = bfzh070c if a11d056b == .
replace yrbrn2015 = cfzh072c if a11d056b == . & bfzh070c == .

recode d11d056b d12d090c dfzh038c efzh032c f11d056b f12d118c ffzh032c gfzh032c hfzh024c idzh024c (-111 = .) (-99 = .) (-77 = .) (-33 = .) (-22 = .) (-11 = .)
generate yrbrn = yrbrn2015
replace yrbrn = d11d056b if yrbrn2015 == .
replace yrbrn = d12d090c if (yrbrn2015 == . & d11d056b == .)
replace yrbrn = dfzh038c if (yrbrn2015 == . & d11d056b == . & d12d090c == .)
replace yrbrn = efzh032c if (yrbrn2015 == . & d11d056b == . & d12d090c == . & dfzh038c == .)
replace yrbrn = f11d056b if (yrbrn2015 == . & d11d056b == . & d12d090c == . & dfzh038c == . & efzh032c == .)
replace yrbrn = f12d118c if (yrbrn2015 == . & d11d056b == . & d12d090c == . & dfzh038c == . & efzh032c == . & f11d056b == .)
replace yrbrn = ffzh032c if (yrbrn2015 == . & d11d056b == . & d12d090c == . & dfzh038c == . & efzh032c == . & f11d056b == . & f12d118c == .)
replace yrbrn = gfzh032c if (yrbrn2015 == . & d11d056b == . & d12d090c == . & dfzh038c == . & efzh032c == . & f11d056b == . & f12d118c == . & ffzh032c == .)
replace yrbrn = hfzh024c if (yrbrn2015 == . & d11d056b == . & d12d090c == . & dfzh038c == . & efzh032c == . & f11d056b == . & f12d118c == . & ffzh032c == . & gfzh032c == .)
replace yrbrn = idzh024c if (yrbrn2015 == . & d11d056b == . & d12d090c == . & dfzh038c == . & efzh032c == . & f11d056b == . & f12d118c == . & ffzh032c == . & gfzh032c == . & hfzh024c == .)

lab var yrbrn "Year of Birth"

generate age = (2022 - yrbrn)
replace age = age/100
lab var age "Age/100"

drop yrbrn2015

*Education
recode a11d082b d12d091b f12d119b (-111 = .) (-99 = .) (-11 = .)

gen educ =.
replace educ = 1 if (a11d082b == 1 | d12d091b == 1 | f12d119b == 1 | a11d082b == 2 | d12d091b == 2 | f12d119b == 2)
replace educ = 2 if (a11d082b == 3 | d12d091b == 3 | f12d119b == 3 | a11d082b == 5 | d12d091b == 5 | f12d119b == 5)
replace educ = 3 if (a11d082b == 4 | d12d091b == 4 | f12d119b == 4 | a11d082b == 6 | d12d091b == 6 | f12d119b == 6)
replace educ = 4 if (a11d082b == 7 | d12d091b == 7 | f12d119b == 7 | a11d082b == 8 | d12d091b == 8 | f12d119b == 8)

lab var educ "Education (categorized)"
lab def educ 1 "No Degree" 2 "Low (Hauptschule)" 3 "Medium (Realschule)" 4 "High (Abitur)"
lab val educ educ

*East/West
gen ostwest = .
replace ostwest = 0 if (a12d021b == 1 | d12d025b == 1 | f12d021b == 1)
replace ostwest = 1 if (a12d021b == 2 | d12d025b == 2 | f12d021b == 2)

lab var ostwest "East"
lab def ostwest 0 "West" 1 "East"
lab val ostwest ostwest

*Political Ideology
recode f12c010a d12c011a gbzc064a fbzc064a ebzc061a dbzc061a cbzc061a a12c010a (-111 -99 -77 -66 -44 -33 -22 -11 98 = .)

gen lire = .
replace lire = 0 if (f12c010a == 0 | ///
					(f12c010a == . & d12c011a == 0) | ///
					(f12c010a == . & d12c011a == . & gbzc064a == 0) | ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == 0) | ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == 0) |  ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == . & dbzc061a == 0) |  ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == . & dbzc061a == . & cbzc061a == 0) |  ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == . & dbzc061a == . & cbzc061a == . & a12c010a == 0))
replace lire = 1 if (f12c010a == 1 | ///
					(f12c010a == . & d12c011a == 1) | ///
					(f12c010a == . & d12c011a == . & gbzc064a == 1) |  ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == 1) | ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == 1) | ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == . & dbzc061a == 1)  | ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == . & dbzc061a == . & cbzc061a == 1) |  ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == . & dbzc061a == . & cbzc061a == . & a12c010a == 1))
replace lire = 2 if (f12c010a == 2 | ///
					(f12c010a == . & d12c011a == 2) | ///
					(f12c010a == . & d12c011a == . & gbzc064a == 2) |  ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == 2) | ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == 2) | ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == . & dbzc061a == 2)  | ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == . & dbzc061a == . & cbzc061a == 2)  | ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == . & dbzc061a == . & cbzc061a == . & a12c010a == 2))
replace lire = 3 if (f12c010a == 3 | ///
					(f12c010a == . & d12c011a == 3) | ////
					(f12c010a == . & d12c011a == . & gbzc064a == 3) | ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == 3) | ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == 3) | ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == . & dbzc061a == 3) |  ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == . & dbzc061a == . & cbzc061a == 3) |  ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == . & dbzc061a == . & cbzc061a == . & a12c010a == 3))
replace lire = 4 if (f12c010a == 4 | ///
					(f12c010a == . & d12c011a == 4) | ////
					(f12c010a == . & d12c011a == . & gbzc064a == 4) | ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == 4) | ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == 4) | ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == . & dbzc061a == 4)  | ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == . & dbzc061a == . & cbzc061a == 4)  | ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == . & dbzc061a == . & cbzc061a == . & a12c010a == 4))
replace lire = 5 if (f12c010a == 5 | ///
					(f12c010a == . & d12c011a == 5) | ///
					(f12c010a == . & d12c011a == . & gbzc064a == 5) | ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == 5) | ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == 5) | ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == . & dbzc061a == 5)  | ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == . & dbzc061a == . & cbzc061a == 5) |  ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == . & dbzc061a == . & cbzc061a == . & a12c010a == 5))
replace lire = 6 if (f12c010a == 6 | ///
					(f12c010a == . & d12c011a == 6) | ///
					(f12c010a == . & d12c011a == . & gbzc064a == 6) | ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == 6) | ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == 6) | ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == . & dbzc061a == 6) |  ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == . & dbzc061a == . & cbzc061a == 6) |   ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == . & dbzc061a == . & cbzc061a == . & a12c010a == 6))
replace lire = 7 if (f12c010a == 7 | ///
					(f12c010a == . & d12c011a == 7) |  ////
					(f12c010a == . & d12c011a == . & gbzc064a == 7) |  ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == 7) | ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == 7) | ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == . & dbzc061a == 7) |  ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == . & dbzc061a == . & cbzc061a == 7) |  ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == . & dbzc061a == . & cbzc061a == . & a12c010a == 7))
replace lire = 8 if (f12c010a == 8 | ///
					(f12c010a == . & d12c011a == 8)| ///
					(f12c010a == . & d12c011a == . & gbzc064a == 8)  | ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == 8) | ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == 8) | ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == . & dbzc061a == 8)  | ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == . & dbzc061a == . & cbzc061a == 8)  |  ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == . & dbzc061a == . & cbzc061a == . & a12c010a == 8))
replace lire = 9 if (f12c010a == 9 | ///
					(f12c010a == . & d12c011a == 9) | ///
					(f12c010a == . & d12c011a == . & gbzc064a == 9) | ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == 9) | ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == 9) | ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == . & dbzc061a == 9)  | ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == . & dbzc061a == . & cbzc061a == 9)  | ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == . & dbzc061a == . & cbzc061a == . & a12c010a == 9))
replace lire = 10 if (f12c010a == 10 | ///
					(f12c010a == . & d12c011a == 10) | ///
					(f12c010a == . & d12c011a == . & gbzc064a == 10) | ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == 10) | ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == 10) | ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == . & dbzc061a == 10) |  ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == . & dbzc061a == . & cbzc061a == 10) |  ///
					(f12c010a == . & d12c011a == . & gbzc064a == . & fbzc064a == . & ebzc061a == . & dbzc061a == . & cbzc061a == . & a12c010a == 10))

generate lrcat1 = 0
replace lrcat1 = 1 if lire < 3
lab var lrcat1 "Left"
generate lrcat2 = 0
replace lrcat2 = 1 if (lire > 2 & lire < 5)
lab var lrcat2 "Leaning Left"
generate lrcat3 = 0
replace lrcat3 = 1 if lire == 5
lab var lrcat3 "Middle"
generate lrcat4 = 0
replace lrcat4 = 1 if (lire > 5 & lire < 8)
lab var lrcat4 "Leaning Right"
generate lrcat5 = 0
replace lrcat5 = 1 if (lire > 7 & lire < .)
lab var lrcat5 "Right"

gen country = .
replace country = 0
lab var country "Sample"
lab def country 0 "Germany" 1 "US"
lab val country country


quietly compress
save "gesis_vig.dta", replace

*****Combining Samples*****
*append using "uas_vig.dta"
append using "\\fs01\lstallba$\Dokumente\DFG-Projekt\I Bevölkerungsumfrage\UAS\Vignetten\uas_vig.dta"
save "comb_vig.dta", replace

*******************************************Analyses***************************************

use "comb_vig.dta", clear

*****RESEARCH DESIGN AND METHOD*****

*Figure 1: Distributions of Perceived Democratic Quality

tab democratic country
gen ger_dem_hist = .
replace ger_dem_hist = 8.81 if _n == 1
replace ger_dem_hist = 11.94 if _n == 2
replace ger_dem_hist = 15.03 if _n == 3
replace ger_dem_hist = 18.92 if _n == 4
replace ger_dem_hist = 18.89 if _n == 5
replace ger_dem_hist = 17.33 if _n == 6
replace ger_dem_hist = 9.08 if _n == 7

gen us_dem_hist = .
replace us_dem_hist = 9.70 if _n == 1
replace us_dem_hist = 8.27 if _n == 2
replace us_dem_hist = 15.0 if _n == 3
replace us_dem_hist = 21.36 if _n == 4
replace us_dem_hist = 20.34 if _n == 5
replace us_dem_hist = 16.11 if _n == 6
replace us_dem_hist = 9.22 if _n == 7

gen n_seq = _n
replace n_seq = . if _n > 7

graph hbar ger_dem_hist us_dem_hist, ///
                over(n_seq, relabel(1 "Not at all democratic" 7 "Completely democratic")) ///
                ylabel(0 "0%" 5 "5%" 10 "10%" 15 "15%" 20 "20%" 25 "25%", labsize(3)) ///
                ytitle("Percentage of Respondents", size(4)) ///
                legend(order(1 2) label(1 "Germany") label(2 "United States") rows(2) symxsize(5)) ///
                bar(1, color(black)) ///
                bar(2, color(gs12)) ///
                yscale(titlegap(3)) ///
                graphregion(fcolor(white)) ///
                name(histograms, replace)

graph export Figure1.jpg, width(3000) replace

*Table 3. Conceptions of democracy items
sum lt1 - pa4 if country == 0
sum lt1 - pa4 if country == 1

*****RESULTS*****
*****Main Results******

reg democratic i.decisionmaker i.procedure i.representation i.judiciary if country == 0, cluster(id)
eststo ols_DE
margins decisionmaker procedure representation judiciary
matrix mat_mm_de = r(table)'
svmat mat_mm_de, name(mat_mm_de)

reg democratic i.decisionmaker i.procedure i.representation i.judiciary if country == 1, cluster(id)
eststo ols_US
margins decisionmaker procedure representation judiciary
matrix mat_mm_us = r(table)'
svmat mat_mm_us, name(mat_mm_us)

*Table 4: Results for the cluster-robust OLS
esttab ols_DE ols_US using Table4.rtf, mtit(Germany US) r2 ///
nogaps wide s(r2 N N_clust, label(R² Vignettes Respondents) fmt(%9.3f %9.0f %9.0f )) ///
cell("b (star fmt(%9.3f))" "se (par)") label replace

*Figure 2: Marginal means of democratic quality
*German sample
egen mm_de_seq = seq(), f(1) t(4) b(2)
replace mm_de_seq = . if _n > 8
recode mm_de_seq 4=1 3=2 2=3 1=4

gen dim_title = " "
replace dim_title = "Representatives" if _n == 1
replace dim_title = "Voters" if _n == 2
replace dim_title = "Majority Decision" if _n == 3
replace dim_title = "Deliberation" if _n == 4
replace dim_title = "Trustee" if _n == 5
replace dim_title = "Delegate" if _n == 6
replace dim_title = "No" if _n == 7
replace dim_title = "Yes" if _n == 8

gen mat_mm_de1_lag = mat_mm_de1[_n-1]

graph twoway (rspike mat_mm_de1 mat_mm_de1_lag mm_de_seq if _n == 2 | _n == 4 | _n == 6 | _n == 8, horizontal lcolor(gs10) lwidth(thin)) ///
			(rspike mat_mm_de5 mat_mm_de6 mm_de_seq, horizontal lcolor(black) lwidth(medthick)) ///
			(scatter mm_de_seq mat_mm_de1, mcolor(gs10) msymbol(O) msize(medlarge) mlabel(dim_title) mlabcolor(black) mlabposition(12)), ///
			legend(off) ///
			ytitle(" ") ///
			ylabel(4 "Decision-maker" 3 "Decision Mode" 2 "Representation Style" 1 "Revision and Appeal", labsize(3.5) angle(horizontal)) ///
			xtitle("Marginal Mean for Democratic Quality", size(3.5)) ///
			xlabel(3.4 3.6 3.8 4.0 4.2 4.4 4.6 4.8, labsize(3)) ///
			yscale(range(.85 4.15)) ///
			name(mm_DE, replace)

*US sample
egen mm_us_seq = seq(), f(1) t(4) b(2)
replace mm_us_seq = . if _n > 8
recode mm_us_seq 4=1 3=2 2=3 1=4

gen mat_mm_us1_lag = mat_mm_us1[_n-1]

graph twoway (rspike mat_mm_us1 mat_mm_us1_lag mm_us_seq if _n == 2 | _n == 4 | _n == 6 | _n == 8, horizontal lcolor(gs10) lwidth(thin)) ///
			(rspike mat_mm_us5 mat_mm_us6 mm_us_seq, horizontal lcolor(black) lwidth(medthick)) ///
			(scatter mm_us_seq mat_mm_us1, mcolor(gs10) msymbol(O) msize(medlarge) mlabel(dim_title) mlabcolor(black) mlabposition(12)), ///
			legend(off) ///
			ytitle(" ") ///
			ylabel(4 "Decision-maker" 3 "Decision Mode" 2 "Representation Style" 1 "Revision and Appeal", labsize(3.5) angle(horizontal)) ///
			xtitle("Marginal Mean for Democratic Quality", size(3.5)) ///
			xlabel(3.4 3.6 3.8 4.0 4.2 4.4 4.6, labsize(3)) ///
			yscale(range(.85 4.15)) ///
			name(mm_US, replace)

graph combine mm_DE mm_US, row(2)			
graph export Figure2.jpg, width(3000) replace

*Figure 3: Average marginal component effect for revision and appeal and for deliberative decision mode
*German sample
reg democratic i.decisionmaker##i.judiciary i.procedure##i.representation if country == 0, cluster(id)
 
margins, dydx(decisionmaker) at(judiciary == (0 1))
matrix dec_jud_int = r(table)'
 
margins, dydx(judiciary) at(decisionmaker == (0 1)) 
matrix jud_dec_int = r(table)'
 
margins, dydx(procedure) at(representation == (0 1)) 
matrix pro_rep_int = r(table)'
 
margins, dydx(representation) at(procedure == (0 1)) 
matrix rep_pro_int = r(table)'


*US sample
reg democratic i.decisionmaker##i.judiciary i.procedure##i.representation if country == 1, cluster(id)
 
margins, dydx(decisionmaker) at(judiciary == (0 1))
matrix dec_jud_int_us = r(table)'
 
margins, dydx(judiciary) at(decisionmaker == (0 1)) 
matrix jud_dec_int_us = r(table)'
 
margins, dydx(procedure) at(representation == (0 1)) 
matrix pro_rep_int_us = r(table)'
 
margins, dydx(representation) at(procedure == (0 1)) 
matrix rep_pro_int_us = r(table)'

svmat dec_jud_int, name(dec_jud_int)
svmat jud_dec_int, name(jud_dec_int)
svmat pro_rep_int, name(pro_rep_int)
svmat rep_pro_int, name(rep_pro_int)
 
svmat dec_jud_int_us, name(dec_jud_int_us)
svmat jud_dec_int_us, name(jud_dec_int_us)
svmat pro_rep_int_us, name(pro_rep_int_us)
svmat rep_pro_int_us, name(rep_pro_int_us)
 
gen n_var = .
replace n_var = 1 if _n == 3
replace n_var = 3 if _n == 4
 
gen n_var2 = .
replace n_var2 = 1.5 if _n == 3
replace n_var2 = 3.5 if _n == 4

graph twoway (rspike dec_jud_int5 dec_jud_int6 n_var, lcolor(black) lwidth(medthick)) ///
                                                (rspike dec_jud_int_us5 dec_jud_int_us6 n_var2, lcolor(black) lwidth(medthick)) ///
                                                (scatter dec_jud_int1 n_var, mcolor(black) msize(large) msymbol(O)) ///
                                                (scatter dec_jud_int_us1 n_var2, mfcolor(white) mlcolor(black) msize(large) msymbol(O)), ///
                                                legend(order(3 4) label(3 "Germany") label(4 "United States") rows(2) symxsize(5) ring(0) position(7) region(color(none))) ///
                                                ytitle("AMCE for Revision and Appeal: Yes", size(5)) ///
                                                ylabel(0 .2 .4 .6, labsize(4) angle(horizontal)) ///
                                                xtitle(" ") ///
                                                xlabel(1.25 `""Representatives" "as Decision-makers""' 3.25 `""Voters" "as Decision-makers""', labsize(4)) ///
                                                xscale(range(.75 3.75)) ///
                                                name(dec_jud, replace)
                                                
graph twoway (rspike pro_rep_int5 pro_rep_int6 n_var, lcolor(black) lwidth(medthick)) ///
                                                (rspike pro_rep_int_us5 pro_rep_int_us6 n_var2, lcolor(black) lwidth(medthick)) ///
                                                (scatter pro_rep_int1 n_var, mcolor(black) msize(large) msymbol(O)) ///
                                                (scatter pro_rep_int_us1 n_var2, mfcolor(white) mlcolor(black) msize(large) msymbol(O)), ///
                                                legend(order(3 4) label(3 "Germany") label(4 "United States") rows(2) symxsize(5) ring(0) position(7) region(color(none))) ///
                                                ytitle("AMCE for Decision Mode: Deliberation", size(5)) ///
                                                ylabel(0 .2 .4 .6, labsize(4) angle(horizontal)) ///
                                                xtitle(" ") ///
                                                xlabel(1.25 `""Trustee" "Representation""' 3.25 `""Delegate" "Representation""', labsize(4)) ///
                                                xscale(range(.75 3.75)) ///
                                                name(pro_rep, replace)  

graph combine dec_jud pro_rep, row(1)
graph export Figure3.jpg, width(3000) replace

*****Partisanship*****

*German Sample
reg democratic i.decisionmaker##b7.wahl i.procedure##b7.wahl i.representation##b7.wahl i.judiciary##b7.wahl ostwest gender age i.educ lrcat1 lrcat2 lrcat4 lrcat5 c.lib_pop if country == 0, cluster(id)
margin wahl, dydx(decisionmaker procedure representation judiciary)
matrix party_me_de = r(table)'
svmat party_me_de, name(party_me_de)

gen party_seq_de = .
replace party_seq_de = 31 if _n == 8
replace party_seq_de = 30 if _n == 9
replace party_seq_de = 29 if _n == 10
replace party_seq_de = 28 if _n == 11
replace party_seq_de = 27 if _n == 12
replace party_seq_de = 26 if _n == 13
replace party_seq_de = 25 if _n == 14

replace party_seq_de = 23 if _n == 22
replace party_seq_de = 22 if _n == 23
replace party_seq_de = 21 if _n == 24
replace party_seq_de = 20 if _n == 25
replace party_seq_de = 19 if _n == 26
replace party_seq_de = 18 if _n == 27
replace party_seq_de = 17 if _n == 28

replace party_seq_de = 15 if _n == 36
replace party_seq_de = 14 if _n == 37
replace party_seq_de = 13 if _n == 38
replace party_seq_de = 12 if _n == 39
replace party_seq_de = 11 if _n == 40
replace party_seq_de = 10 if _n == 41
replace party_seq_de = 9 if _n == 42

replace party_seq_de = 7 if _n == 50
replace party_seq_de = 6 if _n == 51
replace party_seq_de = 5 if _n == 52
replace party_seq_de = 4 if _n == 53
replace party_seq_de = 3 if _n == 54
replace party_seq_de = 2 if _n == 55
replace party_seq_de = 1 if _n == 56

egen party_cat_de = seq(), f(1) t(7)
replace party_cat_de = . if _n > 56

gen party_label_de = " "
replace party_label_de = "CDU/CSU" if party_cat_de == 1 & party_seq_de == 31
replace party_label_de = "SPD" if party_cat_de == 2 & party_seq_de == 30
replace party_label_de = "Green" if party_cat_de == 3 & party_seq_de == 29
replace party_label_de = "FDP" if party_cat_de == 4 & party_seq_de == 28
replace party_label_de = "Left" if party_cat_de == 5 & party_seq_de == 27
replace party_label_de = "AfD" if party_cat_de == 6 & party_seq_de == 26
replace party_label_de = "Non-Voters" if party_cat_de == 7 & party_seq_de == 25

*US Sample
reg democratic i.decisionmaker##b3.party i.procedure##b3.party i.representation##b3.party i.judiciary##b3.party i.region age gender i.degree c.lib_pop if country == 1, cluster(id)
margin party, dydx(decisionmaker procedure representation judiciary)
matrix party_me_us = r(table)'
svmat party_me_us, name(party_me_us)

gen party_seq_us = .
replace party_seq_us = 15 if _n == 4
replace party_seq_us = 14 if _n == 5
replace party_seq_us = 13 if _n == 6
replace party_seq_us = 11 if _n == 10
replace party_seq_us = 10 if _n == 11
replace party_seq_us = 9 if _n == 12
replace party_seq_us = 7 if _n == 16
replace party_seq_us = 6 if _n == 17
replace party_seq_us = 5 if _n == 18
replace party_seq_us = 3 if _n == 22
replace party_seq_us = 2 if _n == 23
replace party_seq_us = 1 if _n == 24

egen party_cat_us = seq(), f(1) t(3)
replace party_cat_us = . if _n > 24

gen party_label_us = " "
replace party_label_us = "Democrats" if party_cat_us == 1 & party_seq_us == 15
replace party_label_us = "Republicans" if party_cat_us == 2 & party_seq_us == 14
replace party_label_us = "Independents" if party_cat_us == 3 & party_seq_us == 13

*Figure 4: Average marginal component effect of each dimension across partisanship
graph twoway (rspike party_me_de5 party_me_de6 party_seq_de, horizontal lcolor(gs12) lwidth(medium)) ///
			(scatter party_seq_de party_me_de1 if party_cat_de == 1, mcolor("0 0 0") msymbol(o) msize(medium)) ///
			(scatter party_seq_de party_me_de6 if party_cat_de == 1, msymbol(none) mlabel(party_label_de) mlabposition(3) mlabcolor("0 0 0")) ///
			(scatter party_seq_de party_me_de1 if party_cat_de == 2, mcolor("182 28 62") msymbol(o) msize(medium)) ///
			(scatter party_seq_de party_me_de5 if party_cat_de == 2, msymbol(none) mlabel(party_label_de) mlabposition(9) mlabcolor("182 28 62")) ///
			(scatter party_seq_de party_me_de1 if party_cat_de == 3, mcolor("100 161 45") msymbol(o) msize(medium)) ///
			(scatter party_seq_de party_me_de6 if party_cat_de == 3, msymbol(none) mlabel(party_label_de) mlabposition(3) mlabcolor("100 161 45")) ///
			(scatter party_seq_de party_me_de1 if party_cat_de == 4, mcolor("255 204 51") msymbol(o) msize(medium)) ///
			(scatter party_seq_de party_me_de5 if party_cat_de == 4, msymbol(none) mlabel(party_label_de) mlabposition(9) mlabcolor("255 204 51")) ///
			(scatter party_seq_de party_me_de1 if party_cat_de == 5, mcolor("214 117 216") msymbol(o) msize(medium)) ///
			(scatter party_seq_de party_me_de6 if party_cat_de == 5, msymbol(none) mlabel(party_label_de) mlabposition(3) mlabcolor("214 117 216")) ///
			(scatter party_seq_de party_me_de1 if party_cat_de == 6, mcolor("0 162 223") msymbol(o) msize(medium)) ///
			(scatter party_seq_de party_me_de6 if party_cat_de == 6, msymbol(none) mlabel(party_label_de) mlabposition(3) mlabcolor("0 162 223")) ///
			(scatter party_seq_de party_me_de1 if party_cat_de == 7, mcolor("128 128 128") msymbol(o) msize(medium)) ///
			(scatter party_seq_de party_me_de5 if party_cat_de == 7, msymbol(none) mlabel(party_label_de) mlabposition(9) mlabcolor("128 128 128")), ///
			legend(off) ///
			ytitle(" ") ///
			ylabel(4 "Revision and Appeal: Yes" 12 "Representation Style: Delegate" 20 "Decision Mode: Deliberation" 28 "Decision-maker: Voter", labsize(3.5) nogrid angle(horizontal)) ///
			xtitle(" Average Marginal Component Effect", size(3.5)) ///
			xlabel(-.5 0 .5 1 1.5 2, labsize(3)) ///
			xline(0, lcolor(gs8) lpattern(dash)) ///
			xline(-.5 .5 1 1.5 2, lcolor(gs14) lpattern(dash)) ///
			yline(8 16 24, lcolor(gs10) lpattern(dot)) ///
			yscale(range(0 16)) ///
			title("Germany") ///
			graphregion(fcolor(white) margin(2 2 2 2)) ///
			aspect(1.25) ///
			name(party_DE, replace)

graph twoway (rspike party_me_us5 party_me_us6 party_seq_us, horizontal lcolor(gs12) lwidth(med)) ///
			(scatter party_seq_us party_me_us1 if party_cat_us == 1, mcolor("26 128 187") msymbol(O) msize(med) mlabel(party_label_us) mlabposition(1) mlabcolor("26 128 187")) ///
			(scatter party_seq_us party_me_us1 if party_cat_us == 2, mcolor("160 0 0") msymbol(O) msize(med) mlabel(party_label_us) mlabposition(1) mlabcolor("160 0 0")) ///
			(scatter party_seq_us party_me_us1 if party_cat_us == 3, mcolor(black) msymbol(O) msize(med) mlabel(party_label_us) mlabposition(1) mlabcolor(black)), ///
			legend(off) ///
			ytitle(" ") ///
			ylabel(2 "Revision and Appeal: Yes" 6 "Representation Style: Delegate" 10 "Decision Mode: Deliberation" 14 "Decision-maker: Voter", labsize(3.5) nogrid angle(horizontal)) ///
			xtitle(" Average Marginal Component Effect", size(3.5)) ///
			xlabel(-.2 0 .2 .4 .6 .8 1, labsize(3)) ///
			xline(0, lcolor(gs8) lpattern(dash)) ///
			xline(-.2 .2 .4 .6 .8 1, lcolor(gs14) lpattern(dash)) ///
			yline(4 8 12, lcolor(gs10) lpattern(dot)) ///
			yscale(range(0 16)) ///
			title("United States") ///
			graphregion(fcolor(white) margin(2 2 2 2)) ///
			aspect(1.25) ///
			name(party_US, replace)
			
graph combine party_DE party_US	
graph export Figure4.jpg, width(3000) replace

*****Conceptions of Democracy*****

*German Sample
reg democratic decisionmaker##c.lib_pop procedure##c.lib_pop representation##c.lib_pop judiciary##c.lib_pop ostwest gender age i.educ lrcat1 lrcat2 lrcat4 lrcat5 b7.wahl if country == 0, cluster(id)
margins, dydx(decisionmaker procedure representation judiciary) at(lib_pop=(1 (1) 7))
matrix mat_dem_de = r(table)'
svmat mat_dem_de, name(mat_dem_de)	

egen dem_cat = seq(), f(1) t(8) b(7)
replace dem_cat = . if _n > 56

egen dem_level = seq(), f(1) t(7)
replace dem_level = . if _n > 56

*US Sample
reg democratic decisionmaker##c.lib_pop procedure##c.lib_pop representation##c.lib_pop judiciary##c.lib_pop i.region age gender i.degree b3.party if country == 1, cluster(id)
margins, dydx(decisionmaker procedure representation judiciary) at(lib_pop=(1 (1) 7))
matrix mat_dem_us = r(table)'
svmat mat_dem_us, name(mat_dem_us)	

*Figure 7: AMCEs
graph twoway (rarea mat_dem_de5 mat_dem_de6 dem_level if dem_cat == 2, fcolor(gs14) lcolor(white)) ///
			(line mat_dem_de1 dem_level if dem_cat == 2, lcolor(black)), ///
			legend(off) ///
			xtitle("Pop-Maj {&harr} Inst-Rep") ///
            xlabel(1 2 3 4 5 6 7, labsize(2.5)) ///
            ytitle("AMCE for Germany") ///
            ylabel(-1.5 -1.0 -.5 0 .5 1.0 1.5 2.0 2.5, labsize(2.5)) ///
            yline(0, lpattern(dash) lcolor(gs10)) ///
            title("Decision-maker") ///
			subtitle("Voter") ///
            name(dem_1_de, replace) 
		
graph twoway (rarea mat_dem_de5 mat_dem_de6 dem_level if dem_cat == 4, fcolor(gs14) lcolor(white)) ///
			(line mat_dem_de1 dem_level if dem_cat == 4, lcolor(black)), ///
			legend(off) ///
			xtitle("Pop-Maj {&harr} Inst-Rep") ///
            xlabel(1 2 3 4 5 6 7, labsize(2.5)) ///
            ytitle("AMCE for Germany") ///
            ylabel(-1.5 -1.0 -.5 0 .5 1.0 1.5 2.0 2.5, labsize(2.5))  ///
            yline(0, lpattern(dash) lcolor(gs10)) ///
            title("Decision Mode") ///
			subtitle("Deliberation") ///
            name(dem_2_de, replace)

graph twoway (rarea mat_dem_de5 mat_dem_de6 dem_level if dem_cat == 6, fcolor(gs14) lcolor(white)) ///
			(line mat_dem_de1 dem_level if dem_cat == 6, lcolor(black)), ///
			legend(off) ///
			xtitle("Pop-Maj {&harr} Inst-Rep") ///
            xlabel(1 2 3 4 5 6 7, labsize(2.5)) ///
            ytitle("AMCE for Germany") ///
            ylabel(-1.5 -1.0 -.5 0 .5 1.0 1.5 2.0 2.5, labsize(2.5))  ///
            yline(0, lpattern(dash) lcolor(gs10)) ///
            title("Representation Style") ///
			subtitle("Delegate") ///
            name(dem_3_de, replace)
		
graph twoway (rarea mat_dem_de5 mat_dem_de6 dem_level if dem_cat == 8, fcolor(gs14) lcolor(white)) ///
			(line mat_dem_de1 dem_level if dem_cat == 8, lcolor(black)), ///
			legend(off) ///
			xtitle("Pop-Maj {&harr} Inst-Rep") ///
            xlabel(1 2 3 4 5 6 7, labsize(2.5)) ///
            ytitle("AMCE for Germany") ///
            ylabel(-1.5 -1.0 -.5 0 .5 1.0 1.5 2.0 2.5, labsize(2.5))  ///
            yline(0, lpattern(dash) lcolor(gs10)) ///
            title("Revision and Appeal") ///
			subtitle("Yes") ///
            name(dem_4_de, replace)                                

graph twoway (rarea mat_dem_us5 mat_dem_us6 dem_level if dem_cat == 2, fcolor(gs14) lcolor(white)) ///
			(line mat_dem_us1 dem_level if dem_cat == 2, lcolor(black)), ///
			legend(off) ///
			xtitle("Pop-Maj {&harr} Inst-Rep")  ///
			xlabel(1 2 3 4 5 6 7, labsize(2.5)) ///
			ytitle("AMCE for the United States") ///
			ylabel(-1.5 -1.0 -.5 0 .5 1.0 1.5 2.0 2.5, labsize(2.5)) ///
			yline(0, lpattern(dash) lcolor(gs10)) ///
			title("Decision-maker") ///
			subtitle("Voter") ///
			name(dem_1_us, replace)	
		
graph twoway (rarea mat_dem_us5 mat_dem_us6 dem_level if dem_cat == 4, fcolor(gs14) lcolor(white)) ///
			(line mat_dem_us1 dem_level if dem_cat == 4, lcolor(black)), ///
			legend(off) ///
			xtitle("Pop-Maj {&harr} Inst-Rep")  ///
			xlabel(1 2 3 4 5 6 7, labsize(2.5)) ///
			ytitle("AMCE for the United States") ///
			ylabel(-1.5 -1.0 -.5 0 .5 1.0 1.5 2.0 2.5, labsize(2.5))  ///
			yline(0, lpattern(dash) lcolor(gs10)) ///
			title("Decision Mode") ///
			subtitle("Deliberation") ///
			name(dem_2_us, replace)
			
graph twoway (rarea mat_dem_us5 mat_dem_us6 dem_level if dem_cat == 6, fcolor(gs14) lcolor(white)) ///
			(line mat_dem_us1 dem_level if dem_cat == 6, lcolor(black)), ///
			legend(off) ///
			xtitle("Pop-Maj {&harr} Inst-Rep")  ///
			xlabel(1 2 3 4 5 6 7, labsize(2.5)) ///
			ytitle("AMCE for the United States") ///
			ylabel(-1.5 -1.0 -.5 0 .5 1.0 1.5 2.0 2.5, labsize(2.5))  ///
			yline(0, lpattern(dash) lcolor(gs10)) ///
			title("Representation Style") ///
			subtitle("Delegate") ///
			name(dem_3_us, replace)
			
graph twoway (rarea mat_dem_us5 mat_dem_us6 dem_level if dem_cat == 8, fcolor(gs14) lcolor(white)) ///
			(line mat_dem_us1 dem_level if dem_cat == 8, lcolor(black)), ///
			legend(off) ///
			xtitle("Pop-Maj {&harr} Inst-Rep")  ///
			xlabel(1 2 3 4 5 6 7, labsize(2.5)) ///
			ytitle("AMCE for the United States") ///
			ylabel(-1.5 -1.0 -.5 0 .5 1.0 1.5 2.0 2.5, labsize(2.5))  ///
			yline(0, lpattern(dash) lcolor(gs10)) ///
			title("Revision and Appeal") ///
			subtitle("Yes") ///
			name(dem_4_us, replace)			

graph combine dem_1_de dem_2_de dem_3_de dem_4_de dem_1_us dem_2_us dem_3_us dem_4_us, rows(2) ycommon
graph export Figure5.jpg, width(3000) replace 

*******************************************Appendix***************************************
*Table A1: Description of the German Sample
gen age_cat = .
replace age_cat = 1 if (age > 0.17 & age < 0.30) | agerange == 1
replace age_cat = 2 if (age > 0.29 & age < 0.40)
replace age_cat = 3 if (age > 0.39 & age < 0.50) | agerange == 3
replace age_cat = 4 if (age > 0.49 & age < 0.60)
replace age_cat = 5 if (age > 0.59 & age < 0.70) | agerange == 5
replace age_cat = 6 if (age > 0.69 & age < .)
lab var age_cat "Age (categorized)"
lab def age_cat 1 "18-29" 2 "30-39" 3 "40-49" 4 "50-59" 5 "60-69" 6 "70 and older"
lab val age_cat age_cat

fre gender age_cat educ ostwest if (vignr == 1 & country == 0)

*Table A2: Description of the US Sample
fre gender age_cat degree region if (vignr == 1 & country == 1)

*Table A3: Results from the multinomial logistic regression analysis of vignette appearance (German sample)
fre vignr

split jbdo227a, p(",") destring
recode jbdo227a1 - jbdo227a4 (-77 = .) (-22 = .) (49442 = 1) (49443 = 2) (49444 = 3) (49445 = 4) ///
(49446 = 5) (49447 = 6) (49448 = 7) (49449 = 8) (49450 = 9) (49451 = 10) (49452 = 11) ///
(49453 = 12) (49454 = 13) (49455 = 14) (49456 = 15) (49457 = 16)

gen vignr_mis = .
replace vignr_mis = vignr if (jbdo227a1 == vignr | jbdo227a2 == vignr | jbdo227a3 == vignr | jbdo227a4 == vignr)

fre vignr_mis
fre vignr_mis if jbza002a == 2
tab vignr vignr_mis, mis

mlogit vignr_mis ostwest gender age i.educ lrcat1 lrcat2 lrcat4 lrcat5 if (jbza002a == 1 & country == 0), b(1)
eststo ranDE

esttab ranDE using TableA3.rtf, mtit(Vignette Number) r2 ///
nogaps wide s(N N_clust, label(Vignettes Respondents) fmt( %9.0f %9.0f)) ///
cell("b (star fmt(%9.3f))" "se (par)") label replace

*Table A4: Results from the multinomial logistic regression analysis of vignette appearance (US sample)
replace vignr_mis = vignr if (vignette_order_1_ == vignr | vignette_order_2_ == vignr | vignette_order_3_ == vignr | vignette_order_4_ == vignr)

mlogit vignr_mis i.region gender age i.degree i.party if country == 1, b(1)
eststo ranUS

esttab ranUS using TableA4.rtf, mtit(Vignette Number) r2 ///
nogaps wide s(N N_clust, label(Vignettes Respondents) fmt( %9.0f %9.0f)) ///
cell("b (star fmt(%9.3f))" "se (par)") label replace

*Figure A3: Histogram for the conceptions of democracy index in Germany
graph twoway (hist lib_pop if country == 0, percent fcolor(gs6) lcolor(white) lwidth(vthin)), ///
                                                xtitle("          Populist-Majoritarian {&harr} Institutional-Representative", size(4)) ///
                                                xlabel(1 2 3 4 5 6 7, labsize(3)) ///
                                                ytitle("Percentage of Respondents", size(4)) ///
                                                ylabel(0 3 6 9 12 15, labsize(3) angle(horizontal)) ///
                                                title(Germany)
graph export FigureA3.jpg, width(3000) replace

*Figure A4: Histogram for the conceptions of democracy index in the United States
graph twoway (hist lib_pop if country == 1, percent fcolor(gs6) lcolor(white) lwidth(vthin)), ///
                                                xtitle("          Populist-Majoritarian {&harr} Institutional-Representative", size(4)) ///
                                                xlabel(1 2 3 4 5 6 7, labsize(3)) ///
                                                ytitle("Percentage of Respondents", size(4)) ///
                                                ylabel(0 3 6 9 12 15, labsize(3) angle(horizontal)) ///
                                                title(United States)
graph export FigureA4.jpg, width(3000) replace

*Table A5: Results of a principal component analysis (German sample)
pca lt1 lt2 lt3 lt4 pa1 pa2 pa3 pa4 if country == 0

*Table A6: Results of a principal component analysis (US sample)
pca lt1 lt2 lt3 lt4 pa1 pa2 pa3 pa4 if country == 1

*Table A7: Full cluster-robust regression results of the main models
eststo  clear
reg democratic i.decisionmaker i.procedure i.representation i.judiciary if country == 0, cluster(id)
eststo ols_deA

reg effective i.decisionmaker i.procedure i.representation i.judiciary if country == 0, cluster(id)
eststo ols_deB

reg democratic i.decisionmaker i.procedure i.representation i.judiciary if country == 1, cluster(id)
eststo ols_usA

reg effective i.decisionmaker i.procedure i.representation i.judiciary if country == 1, cluster(id)
eststo ols_usB

esttab ols_deA ols_deB ols_usA ols_usB using TableA7.rtf, mtit(Democratic Effective Democratic Effective) r2 ///
nogaps wide s(r2 N N_clust, label(R² Vignettes Respondents) fmt(%9.3f %9.0f %9.0f )) ///
cell("b (star fmt(%9.3f))" "se (par)") label replace

*Table A8: Results of multi-level regression analyses for Germany
xtmixed  democratic if country == 0 || id:
xtmixed  democratic decisionmaker procedure representation judiciary if country == 0 || id:

xtmixed effective if country == 0 || id:
xtmixed effective decisionmaker procedure representation judiciary if country == 0  || id:

*Table A9: Results of multi-level regression analyses for the US
xtmixed  democratic if country == 1 || id:
xtmixed  democratic decisionmaker procedure representation judiciary if country == 1 || id:

xtmixed effective if country == 1 || id:
xtmixed effective decisionmaker procedure representation judiciary if country == 1 || id:

*Table A10: Full cluster-robust regression results for main models with interaction effects
reg democratic i.decisionmaker##i.judiciary i.procedure##i.representation if country == 0, cluster(id)
eststo inter_deA
reg effective i.decisionmaker##i.judiciary i.procedure##i.representation if country == 0, cluster(id)
eststo inter_deB

reg democratic i.decisionmaker##i.judiciary i.procedure##i.representation if country == 1, cluster(id)
eststo inter_usA
reg effective i.decisionmaker##i.judiciary i.procedure##i.representation if country == 1, cluster(id)
eststo inter_usB

esttab inter_deA inter_deB inter_usA inter_usB using TableA10.rtf, mtit(Democratic Effective Democratic Effective) r2 ///
nogaps wide s(r2 N N_clust, label(R² Vignettes Respondents) fmt(%9.3f %9.0f %9.0f )) ///
cell("b (star fmt(%9.3f))" "se (par)") label replace

*Table A11: Full cluster-robust regression results with partisanship for Germany
reg democratic decisionmaker##b7.wahl procedure##b7.wahl representation##b7.wahl judiciary##b7.wahl ostwest gender age i.educ lrcat1 lrcat2 lrcat4 lrcat5 c.lib_pop if country == 0, cluster(id)
eststo part_deA
reg effective i.decisionmaker##b7.wahl i.procedure##b7.wahl i.representation##b7.wahl i.judiciary##b7.wahl ostwest gender age i.educ lrcat1 lrcat2 lrcat4 lrcat5 c.lib_pop if country == 0, cluster(id)
eststo part_deB

esttab part_deA part_deB using TableA11.rtf, mtit(Democratic Effective) r2 ///
nogaps wide s(r2 N N_clust, label(R² Vignettes Respondents) fmt(%9.3f %9.0f %9.0f )) ///
cell("b (star fmt(%9.3f))" "se (par)") label replace

*Table A12: Full cluster-robust regression results with partisanship for the US
reg democratic i.decisionmaker##b3.party i.procedure##b3.party i.representation##b3.party i.judiciary##b3.party i.region age gender i.degree c.lib_pop if country == 1, cluster(id)
eststo part_usA
reg effective i.decisionmaker##b3.party i.procedure##b3.party i.representation##b3.party i.judiciary##b3.party i.region age gender i.degree c.lib_pop if country == 1, cluster(id)
eststo part_usB

esttab part_usA part_usB using TableA12.rtf, mtit(Democratic Effective) r2 ///
nogaps wide s(r2 N N_clust, label(R² Vignettes Respondents) fmt(%9.3f %9.0f %9.0f )) ///
cell("b (star fmt(%9.3f))" "se (par)") label replace

*Figure A5:  Marginal means of democratic quality and effectiveness for AfD supporters in Germany 
reg democratic i.decisionmaker##b7.wahl i.procedure##b7.wahl i.representation##b7.wahl i.judiciary##b7.wahl ostwest gender age i.educ lrcat1 lrcat2 lrcat4 lrcat5 c.lib_pop if country == 0, cluster(id)

margins decisionmaker#i.wahl
marginsplot, plotopts(xtitle(" ", size(0)))  xlabel(, labsize(3)) xscale(range(-.05 1.05)) title("Decision-maker", nospan) plot1opts(color("180 180 180")) ci1opts(color("180 180 180")) plot2opts(color("180 180 180")) ci2opts(color("180 180 180")) plot3opts(color("180 180 180")) ci3opts(color("180 180 180")) plot4opts(color("180 180 180")) ci4opts(color("180 180 180")) plot5opts(color("180 180 180")) ci5opts(color("180 180 180"))   plot6opts(color("0 162 223") lpattern(dash)) ci6opts(color("0 162 223")) plot7opts(color("180 180 180")) ci7opts(color("180 180 180"))  ytitle("Marginal Mean for Democratic Quality", size(3)) ylabel(3 3.4 3.8 4.2 4.6 5.0 5.4, labsize(2.5)) legend(off)  text(3.6 .5 "AfD", color("0 162 223") placement(c)) 
graph save dmA, replace

margins procedure#i.wahl
marginsplot, plotopts(xtitle(" ", size(0)))  xlabel(, labsize(3)) xscale(range(-.05 1.05)) title("Decision Mode", nospan) plot1opts(color("180 180 180")) ci1opts(color("180 180 180")) plot2opts(color("180 180 180")) ci2opts(color("180 180 180")) plot3opts(color("180 180 180")) ci3opts(color("180 180 180")) plot4opts(color("180 180 180")) ci4opts(color("180 180 180")) plot5opts(color("180 180 180")) ci5opts(color("180 180 180"))   plot6opts(color("0 162 223") lpattern(dash)) ci6opts(color("0 162 223")) plot7opts(color("180 180 180")) ci7opts(color("180 180 180"))  ytitle("Marginal Mean for Democratic Quality", size(3)) ylabel(3 3.4 3.8 4.2 4.6 5.0 5.4, labsize(2.5)) legend(off) 
graph save pA, replace

margins representation#i.wahl
marginsplot, plotopts(xtitle(" ", size(0)))  xlabel(, labsize(3)) xscale(range(-.05 1.05)) title("Representation Style", nospan) plot1opts(color("180 180 180")) ci1opts(color("180 180 180")) plot2opts(color("180 180 180")) ci2opts(color("180 180 180")) plot3opts(color("180 180 180")) ci3opts(color("180 180 180")) plot4opts(color("180 180 180")) ci4opts(color("180 180 180")) plot5opts(color("180 180 180")) ci5opts(color("180 180 180"))   plot6opts(color("0 162 223") lpattern(dash)) ci6opts(color("0 162 223")) plot7opts(color("180 180 180")) ci7opts(color("180 180 180"))  ytitle("Marginal Mean for Democratic Quality", size(3)) ylabel(3 3.4 3.8 4.2 4.6 5.0 5.4, labsize(2.5)) legend(off)
graph save rA, replace

margins judiciary#i.wahl
marginsplot, plotopts(xtitle(" ", size(0)))  xlabel(, labsize(3)) xscale(range(-.05 1.05)) title("Revision and Appeal", nospan) plot1opts(color("180 180 180")) ci1opts(color("180 180 180")) plot2opts(color("180 180 180")) ci2opts(color("180 180 180")) plot3opts(color("180 180 180")) ci3opts(color("180 180 180")) plot4opts(color("180 180 180")) ci4opts(color("180 180 180")) plot5opts(color("180 180 180")) ci5opts(color("180 180 180"))   plot6opts(color("0 162 223") lpattern(dash)) ci6opts(color("0 162 223")) plot7opts(color("180 180 180")) ci7opts(color("180 180 180"))  ytitle("Marginal Mean for Democraticy Quality", size(3)) ylabel(3 3.4 3.8 4.2 4.6 5.0 5.4, labsize(2.5)) legend(off) 
graph save jA, replace

reg effective i.decisionmaker##b6.wahl i.procedure##b6.wahl i.representation##b6.wahl i.judiciary##b6.wahl ostwest gender age i.educ lrcat1 lrcat2 lrcat4 lrcat5 c.lib_pop if country == 0, cluster(id)

margins decisionmaker#i.wahl
marginsplot, plotopts(xtitle(" ", size(0))) xlabel(, labsize(3)) xscale(range(-.05 1.05)) xscale(range(-.05 1.05)) title("Decision-maker", nospan) plot1opts(color("180 180 180")) ci1opts(color("180 180 180")) plot2opts(color("180 180 180")) ci2opts(color("180 180 180")) plot3opts(color("180 180 180")) ci3opts(color("180 180 180")) plot4opts(color("180 180 180")) ci4opts(color("180 180 180")) plot5opts(color("180 180 180")) ci5opts(color("180 180 180"))   plot6opts(color("0 162 223") lpattern(dash)) ci6opts(color("0 162 223")) plot7opts(color("180 180 180")) ci7opts(color("180 180 180"))  ytitle("Marginal Mean for Effectiveness", size(3)) ylabel(3 3.4 3.8 4.2 4.6 5.0 5.4, labsize(2.5)) legend(off) text(3.75 .5 "AfD", color("0 162 223") placement(c)) 
graph save dmB, replace

margins procedure#i.wahl
marginsplot, plotopts(xtitle(" ", size(0))) xlabel(, labsize(2.75)) xscale(range(-.05 1.05)) title("Decision Mode", nospan) plot1opts(color("180 180 180")) ci1opts(color("180 180 180")) plot2opts(color("180 180 180")) ci2opts(color("180 180 180")) plot3opts(color("180 180 180")) ci3opts(color("180 180 180")) plot4opts(color("180 180 180")) ci4opts(color("180 180 180")) plot5opts(color("180 180 180")) ci5opts(color("180 180 180"))   plot6opts(color("0 162 223") lpattern(dash)) ci6opts(color("0 162 223")) plot7opts(color("180 180 180")) ci7opts(color("180 180 180"))  ytitle("Marginal Mean for Effectiveness", size(3)) ylabel(3 3.4 3.8 4.2 4.6 5.0 5.4, labsize(2.5)) legend(off) 
graph save pB, replace

margins representation#i.wahl
marginsplot, plotopts(xtitle(" ", size(0))) xlabel(, labsize(2.75)) xscale(range(-.05 1.05)) title("Representation Style", nospan) plot1opts(color("180 180 180")) ci1opts(color("180 180 180")) plot2opts(color("180 180 180")) ci2opts(color("180 180 180")) plot3opts(color("180 180 180")) ci3opts(color("180 180 180")) plot4opts(color("180 180 180")) ci4opts(color("180 180 180")) plot5opts(color("180 180 180")) ci5opts(color("180 180 180"))   plot6opts(color("0 162 223") lpattern(dash)) ci6opts(color("0 162 223")) plot7opts(color("180 180 180")) ci7opts(color("180 180 180"))  ytitle("Marginal Mean for Effectiveness", size(3)) ylabel(3 3.4 3.8 4.2 4.6 5.0 5.4, labsize(2.5)) legend(off) 
graph save rB, replace

margins judiciary#i.wahl
marginsplot, plotopts(xtitle(" ", size(0))) xlabel(, labsize(2.75)) xscale(range(-.05 1.05)) title("Revision and Appeal", nospan) plot1opts(color("180 180 180")) ci1opts(color("180 180 180")) plot2opts(color("180 180 180")) ci2opts(color("180 180 180")) plot3opts(color("180 180 180")) ci3opts(color("180 180 180")) plot4opts(color("180 180 180")) ci4opts(color("180 180 180")) plot5opts(color("180 180 180")) ci5opts(color("180 180 180"))   plot6opts(color("0 162 223") lpattern(dash)) ci6opts(color("0 162 223")) plot7opts(color("180 180 180")) ci7opts(color("180 180 180"))  ytitle("Marginal Mean for Effectiveness", size(3)) ylabel(3 3.4 3.8 4.2 4.6 5.0 5.4, labsize(2.5)) legend(off) 
graph save jB, replace

graph combine "dmA" "pA" "rA" "jA" "dmB" "pB" "rB" "jB", rows(2) ycommon
graph export FigureA5.jpg, width(3000) replace

*Table A13: Full cluster-robust regression results with the populist-institutional scale for Germany
reg democratic decisionmaker##c.lib_pop procedure##c.lib_pop representation##c.lib_pop judiciary##c.lib_pop ostwest gender age i.educ lrcat1 lrcat2 lrcat4 lrcat5 b7.wahl if country == 0, cluster(id)
eststo lp_deA
reg effective decisionmaker##c.lib_pop procedure##c.lib_pop representation##c.lib_pop judiciary##c.lib_pop ostwest gender age i.educ lrcat1 lrcat2 lrcat4 lrcat5 b7.wahl if country == 0, cluster(id)
eststo lp_deB

esttab lp_deA lp_deB using TableA13.rtf, mtit(Democratic Effective) r2 ///
nogaps wide s(r2 N N_clust, label(R² Vignettes Respondents) fmt(%9.3f %9.0f %9.0f )) ///
cell("b (star fmt(%9.3f))" "se (par)") label replace

*Table A14: Full cluster-robust regression results with the populist-institutional scale for the US
reg democratic decisionmaker##c.lib_pop procedure##c.lib_pop representation##c.lib_pop judiciary##c.lib_pop i.region age gender i.degree b3.party if country == 1, cluster(id)
eststo lp_usA
reg effective decisionmaker##c.lib_pop procedure##c.lib_pop representation##c.lib_pop judiciary##c.lib_pop i.region age gender i.degree b3.party if country == 1, cluster(id)
eststo lp_usB

esttab lp_usA lp_usB using TableA14.rtf, mtit(Democratic Effective) r2 ///
nogaps wide s(r2 N N_clust, label(R² Vignettes Respondents) fmt(%9.3f %9.0f %9.0f )) ///
cell("b (star fmt(%9.3f))" "se (par)") label replace

*Table A15: Full cluster-robust regression results with the six-item populist-institutional scale for Germany
egen lib_pop1 = rowmean(lt1 lt3 lt4 pa1_r pa2_r pa3_r)

reg democratic decisionmaker##c.lib_pop1 procedure##c.lib_pop1 representation##c.lib_pop1 judiciary##c.lib_pop1 ostwest gender age i.educ lrcat1 lrcat2 lrcat4 lrcat5 b7.wahl if country == 0, cluster(id)
eststo libpop_deA

reg effective decisionmaker##c.lib_pop1 procedure##c.lib_pop1 representation##c.lib_pop1 judiciary##c.lib_pop1 ostwest gender age i.educ lrcat1 lrcat2 lrcat4 lrcat5 b7.wahl if country == 0, cluster(id)
eststo libpop_deB

esttab libpop_deA libpop_deB using TableA15.rtf, mtit(Democratic Effective) r2 ///
nogaps wide s(r2 N N_clust, label(R² Vignettes Respondents) fmt(%9.3f %9.0f %9.0f )) ///
cell("b (star fmt(%9.3f))" "se (par)") label replace

*Table A16: Full cluster-robust regression results with the six-item populist-institutional scale for the US
reg democratic decisionmaker##c.lib_pop1 procedure##c.lib_pop1 representation##c.lib_pop1 judiciary##c.lib_pop1 i.region age gender i.degree b3.party if country == 1, cluster(id)
eststo libpop_usA

reg effective decisionmaker##c.lib_pop1 procedure##c.lib_pop1 representation##c.lib_pop1 judiciary##c.lib_pop1 i.region age gender i.degree b3.party if country == 1, cluster(id)
eststo libpop_usB

esttab libpop_usA libpop_usB using TableA16.rtf, mtit(Democratic Effective) r2 ///
nogaps wide s(r2 N N_clust, label(R² Vignettes Respondents) fmt(%9.3f %9.0f %9.0f )) ///
cell("b (star fmt(%9.3f))" "se (par)") label replace
